@echo off
chcp 65001 >nul
echo ========================================
echo        Nginx 服务管理工具
echo ========================================
echo.

:: 设置Nginx路径（用户可以修改这个路径）
set NGINX_PATH=C:\nginx
set NGINX_EXE=%NGINX_PATH%\nginx.exe

:: 检查Nginx是否存在
if not exist "%NGINX_EXE%" (
    echo ❌ 错误：未找到Nginx程序
    echo 请确保Nginx已安装在：%NGINX_PATH%
    echo 或修改此脚本中的NGINX_PATH变量
    echo.
    echo 💡 提示：
    echo 1. 下载Nginx：http://nginx.org/en/download.html
    echo 2. 解压到C:\nginx目录
    echo 3. 重新运行此脚本
    pause
    exit /b 1
)

:MENU
cls
echo ========================================
echo        Nginx 服务管理工具
echo ========================================
echo.
echo Nginx路径：%NGINX_PATH%
echo 配置文件：%cd%\nginx.conf
echo 网站目录：%cd%\dist
echo.
echo 请选择操作：
echo.
echo [1] 启动 Nginx 服务
echo [2] 停止 Nginx 服务
echo [3] 重新加载配置
echo [4] 检查配置文件
echo [5] 查看Nginx状态
echo [6] 查看访问日志
echo [7] 查看错误日志
echo [8] 打开网站
echo [9] 配置向导
echo [0] 退出
echo.
set /p choice="请输入选项 (0-9): "

if "%choice%"=="1" goto START_NGINX
if "%choice%"=="2" goto STOP_NGINX
if "%choice%"=="3" goto RELOAD_NGINX
if "%choice%"=="4" goto TEST_CONFIG
if "%choice%"=="5" goto CHECK_STATUS
if "%choice%"=="6" goto VIEW_ACCESS_LOG
if "%choice%"=="7" goto VIEW_ERROR_LOG
if "%choice%"=="8" goto OPEN_WEBSITE
if "%choice%"=="9" goto CONFIG_WIZARD
if "%choice%"=="0" goto EXIT

echo 无效选项，请重新选择
pause
goto MENU

:START_NGINX
echo.
echo [启动Nginx服务]
echo ================

:: 检查是否已经运行
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if "%ERRORLEVEL%"=="0" (
    echo ⚠️  Nginx已经在运行中
    goto MENU_RETURN
)

:: 复制配置文件到Nginx目录
if exist "nginx.conf" (
    echo 正在复制配置文件...
    copy "nginx.conf" "%NGINX_PATH%\conf\nginx.conf" >nul
    if errorlevel 1 (
        echo ❌ 配置文件复制失败
        goto MENU_RETURN
    )
    echo ✅ 配置文件已更新
)

:: 启动Nginx
echo 正在启动Nginx...
cd /d "%NGINX_PATH%"
start "" "%NGINX_EXE%"

:: 等待启动
timeout /t 2 >nul

:: 检查是否启动成功
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if "%ERRORLEVEL%"=="0" (
    echo ✅ Nginx启动成功！
    echo 🌐 访问地址：http://localhost:8089/his-refund/
) else (
    echo ❌ Nginx启动失败，请检查配置文件
)
goto MENU_RETURN

:STOP_NGINX
echo.
echo [停止Nginx服务]
echo ================
echo 正在停止Nginx...
cd /d "%NGINX_PATH%"
"%NGINX_EXE%" -s stop 2>nul

:: 等待停止
timeout /t 2 >nul

:: 检查是否停止成功
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if "%ERRORLEVEL%"=="0" (
    echo ⚠️  Nginx进程仍在运行，尝试强制结束...
    taskkill /F /IM nginx.exe >nul 2>&1
    echo ✅ Nginx已强制停止
) else (
    echo ✅ Nginx已停止
)
goto MENU_RETURN

:RELOAD_NGINX
echo.
echo [重新加载配置]
echo ================

:: 检查Nginx是否运行
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if not "%ERRORLEVEL%"=="0" (
    echo ❌ Nginx未运行，请先启动服务
    goto MENU_RETURN
)

:: 复制配置文件
if exist "nginx.conf" (
    echo 正在更新配置文件...
    copy "nginx.conf" "%NGINX_PATH%\conf\nginx.conf" >nul
    echo ✅ 配置文件已更新
)

echo 正在重新加载配置...
cd /d "%NGINX_PATH%"
"%NGINX_EXE%" -s reload
if errorlevel 1 (
    echo ❌ 配置重载失败，请检查配置文件语法
) else (
    echo ✅ 配置重载成功
)
goto MENU_RETURN

:TEST_CONFIG
echo.
echo [检查配置文件]
echo ================

:: 复制配置文件
if exist "nginx.conf" (
    copy "nginx.conf" "%NGINX_PATH%\conf\nginx.conf" >nul
)

echo 正在检查配置文件语法...
cd /d "%NGINX_PATH%"
"%NGINX_EXE%" -t
if errorlevel 1 (
    echo ❌ 配置文件有语法错误
) else (
    echo ✅ 配置文件语法正确
)
goto MENU_RETURN

:CHECK_STATUS
echo.
echo [查看Nginx状态]
echo ================

:: 检查进程
tasklist /FI "IMAGENAME eq nginx.exe" 2>NUL | find /I /N "nginx.exe">NUL
if "%ERRORLEVEL%"=="0" (
    echo ✅ Nginx正在运行
    echo.
    echo 进程信息：
    tasklist /FI "IMAGENAME eq nginx.exe"
    echo.
    echo 端口占用情况：
    netstat -ano | findstr :8081
) else (
    echo ❌ Nginx未运行
)
goto MENU_RETURN

:VIEW_ACCESS_LOG
echo.
echo [查看访问日志]
echo ================
set LOG_FILE=%NGINX_PATH%\logs\access.log
if exist "%LOG_FILE%" (
    echo 最近10条访问记录：
    echo ========================
    powershell "Get-Content '%LOG_FILE%' -Tail 10"
) else (
    echo ❌ 访问日志文件不存在：%LOG_FILE%
)
goto MENU_RETURN

:VIEW_ERROR_LOG
echo.
echo [查看错误日志]
echo ================
set ERROR_LOG=%NGINX_PATH%\logs\error.log
if exist "%ERROR_LOG%" (
    echo 最近10条错误记录：
    echo ========================
    powershell "Get-Content '%ERROR_LOG%' -Tail 10"
) else (
    echo ❌ 错误日志文件不存在：%ERROR_LOG%
)
goto MENU_RETURN

:OPEN_WEBSITE
echo.
echo [打开网站]
echo ================
echo 正在打开浏览器...
start http://localhost:8089/his-refund/
echo ✅ 已在默认浏览器中打开网站
goto MENU_RETURN

:CONFIG_WIZARD
echo.
echo [配置向导]
echo ================
echo.
echo 当前配置信息：
echo Nginx路径：%NGINX_PATH%
echo 网站根目录：%cd%\dist
echo 监听端口：8081
echo API代理：http://10.1.200.169:6724
echo.
echo 配置检查：

:: 检查dist目录
if exist "dist" (
    echo ✅ 网站文件目录存在
) else (
    echo ❌ 网站文件目录不存在，请先运行构建脚本
)

:: 检查配置文件
if exist "nginx.conf" (
    echo ✅ Nginx配置文件存在
) else (
    echo ❌ Nginx配置文件不存在
)

:: 检查Nginx安装
if exist "%NGINX_EXE%" (
    echo ✅ Nginx程序已安装
) else (
    echo ❌ Nginx程序未安装
)

echo.
echo 💡 建议操作：
echo 1. 确保已运行 deploy-nginx.bat 构建项目
echo 2. 检查Nginx是否正确安装
echo 3. 使用选项1启动Nginx服务
echo 4. 使用选项8打开网站测试

goto MENU_RETURN

:MENU_RETURN
echo.
pause
goto MENU

:EXIT
echo.
echo 感谢使用Nginx服务管理工具！
echo.
pause
exit /b 0